#include <iostream>
// 饿汉模式
// class Singletlon
// {
// public:
//     static Singletlon &GetInstance()
//     {
//         return _Inst;
//     }
//     int GetData()
//     {
//         return _data;
//     }

// private:
//     int _data;

// private:
//     Singletlon() : _data(99)
//     {
//         std::cout << "饿汉对象构造完毕" << std::endl;
//     }
//     Singletlon(const Singletlon &v) = delete;
//     static Singletlon _Inst;
// };
// Singletlon Singletlon::_Inst;

// 懒汉模式
class Singleton
{
public:
    static Singleton &GetInstance()
    {
        static Singleton _Inst;
        return _Inst;
    }
    int GetData()
    {
        return _data;
    }

private:
    int _data;

private:
    Singleton() : _data(99)
    {
        printf("懒汉对象构造完毕！\n");
    }
    Singleton(const Singleton &) = delete;
};

int main()
{
    // std::cout << Singleton::GetInstance().GetData() << std::endl;
    return 0;
}